package com.dreamwhale.machinery.goods.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dreamwhale.machinery.config.DataResult;
import com.dreamwhale.machinery.goods.entity.YxStoreCart;
import com.dreamwhale.machinery.goods.mapper.YxStoreCartMapper;
import com.dreamwhale.machinery.goods.service.YxStoreCartService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 购物车表 服务实现类
 * </p>
 *
 * @author Author
 * @since 2020-05-28
 */
@Service
public class YxStoreCartServiceImpl extends ServiceImpl<YxStoreCartMapper, YxStoreCart> implements YxStoreCartService {

    @Resource
    private YxStoreCartMapper yxStoreCartMapper;

    @Override
    public List<YxStoreCart> getStoreCart(Integer userId) {
        QueryWrapper<YxStoreCart> yxStoreCartQueryWrapper = new QueryWrapper<>();
        yxStoreCartQueryWrapper.eq("uid", userId).eq("is_pay", 0).eq("is_del", 0);
        List<YxStoreCart> yxStoreCarts = yxStoreCartMapper.selectList(yxStoreCartQueryWrapper);
        if (CollectionUtils.isEmpty(yxStoreCarts))
            return null;
        return yxStoreCarts;
    }

    @Override
    public DataResult addStoreCart(YxStoreCart yxStoreCart) {
        yxStoreCart.setAddTime(LocalDateTime.now());
        if (yxStoreCartMapper.insert(yxStoreCart) == 1)
            return new DataResult(200, "加入成功", null);
        return new DataResult(300, "加入失败", null);
    }

    @Override
    public DataResult changeStoreCart(YxStoreCart yxStoreCart) {
        if (yxStoreCartMapper.updateById(yxStoreCart) == 1)
            return new DataResult(200, "修改成功", null);
        return new DataResult(300, "修改失败", null);
    }

    @Override
    public DataResult delStoreCart(YxStoreCart yxStoreCart) {
        if (yxStoreCartMapper.deleteById(yxStoreCart) == 1)
            return new DataResult(200, "删除成功", null);
        return new DataResult(300, "删除失败", null);
    }

    @Override
    public int updateYxStoreCarts(YxStoreCart yxStoreCart) {
        return yxStoreCartMapper.updateYxStoreCarts(yxStoreCart);
    }
}
